Deploy Node JS บน AWS Lambda ด้วย ZIP ไฟล์กันเถอะ
วันนี้ผมจะมาเขียน blog เกี่ยวกับวิธีการ deploy node js app บน AWS lambda โดยใช้ zip file ที่ได้ศึกษามากันกันครับ
Step 1 : เตรียม project
ใน blog นี้เราจะไม่ลงเนื้อหาในส่วนการเขียน backend โดยใช้ node js + express กันนะครับ
โดยโครงสร้างโปรเจคของผมที่จะทำการ deploy มีดังนี้
Step 2 : ทำให้ application สามารถใช้งานแบบ serverless ได้
จากนั้นให้เราทำการ npm install serverless-http ซึ่งเป็น library สำหรับเตรียม app ของเราให้สามารถใช้งานแบบ serverless ได้
const express = require("express"); const ServerlessHttp = require('serverless-http') const app = express(); . . . // application logic and api module.exports.handler = ServerlessHttp(app);
Step 3 : ทำการเลือก file สำหรับ zip โปรเจคดังนี้
ทำการเลือก file กับ folder ที่เป็น logic ของ application เราจากนั้นก็ทำการ zip เพียงเท่านี้ก็พร้อมสำหรับการ deploy บน lambda function ได้แล้ว
Step 4 : zip folder library สำหรับ application ของเรา
ทำการ zip โดยมีโครงสร้าง folder ดังนี้
-nodejs/
-Node_modules/
Step 5 : upload application และ library ของเราบน AWS lambda
5.1 ทำ upload application ของเราโดยกดตามลูกศรสีแดงตามภาพ
5.2 ทำ upload library ของเราดดยกดตามลูกศรสีแดงตามภาพ
ในช่อง name ใส่ชื่อตามที่เราต้องการส่วน option อื่นปล่อยตาม default
เพียงเท่านี้การ deployment ก็เสร็จเรียบร้อย
สรุป
การ deploy โดยการ upload zip file นั้นทาง AWS ได้จัดการออกแบวิธี upload ให้ง่ายเหมือนการ upload file โดยทั่วไปปกติเพียงเเค่เราตีองจัด file path ให้ตรงตามที่ document เขียนไว้ก็สามารถ deploy ได้อย่างง่ายดาย
ข้อมูลอ้างอิง
https://bitbucket.org/blog/deploy-an-express-js-app-to-aws-lambda-using-the-serverless-framework
https://docs.aws.amazon.com/lambda/latest/dg/nodejs-package.html
https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html